package com.spark.invoicings.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 供应商表
 * 
 * @author sunyan
 * @email sunyan@gmail.com
 * @date 2024-06-13 11:10:42
 */
@Data
@TableName("t_procured_supplier")
public class ProcuredSupplier implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 供应商ID
	 */
	@TableId(type = IdType.AUTO)
	private Integer supplierId;
	/**
	 * 供应商分级(1:一级供应商,2: 二级供应商,3: 三级供应商)
	 */
	private Integer supplierClassificationId;
	/**
	 * 合作状态(1合作中, 2已淘汰)
	 */
	private Integer collaborationStatusId;
	/**
	 * 供应商简称
	 */
	private String supplierShortName;
	/**
	 * 联系人
	 */
	private String contactPerson;
	/**
	 * 手机号
	 */
	private String phoneNumber;
	/**
	 * 结算方式(1按单付款-现结, 2按入库对账-赊账)
	 */
	private Integer billingMethodId;
	/**
	 * 账单周期
	 */
	private String billingCycle;
	/**
	 * 上次对账日
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date lastReconciliationDate;
	/**
	 * 下次对账日
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date nextReconciliationDate;
	/**
	 * 采购总额
	 */
	private double totalPurchaseAmount;
	/**
	 * 应付总额
	 */
	private double totalPayableAmount;
	/**
	 * 已对账总额
	 */
	private double totalReconciledAmount;
	/**
	 * 待对账总额
	 */
	private double totalUnreconciledAmount;
	/**
	 * 延期率
	 */
	private double delayRate;
	/**
	 * 待付款金额
	 */
	private double unpaidAmount;
	/**
	 * 已付款金额
	 */
	private double paidAmount;
	/**
	 * 待回票金额
	 */
	private double unpaidInvoiceAmount;
	/**
	 * 资质证书
	 */
	private String qualificationCertificate;
	/**
	 * 公司全称
	 */
	private String companyFullName;
	/**
	 * 税号
	 */
	private String taxId;
	/**
	 * 银行账号
	 */
	private String bankAccount;
	/**
	 * 开户行
	 */
	private String bankName;
	/**
	 * 详细地址
	 */
	private String address;
	/**
	 * 本次对账起始日
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date currentReconciliationStartDate;
	/**
	 * 本次对账终止日
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date currentReconciliationEndDate;
	/**
	 * 创建人
	 */
	private String creator;
	/**
	 * 修改人
	 */
	private String modifier;
	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date createTime;
	/**
	 * 修改时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date modifyTime;
	/**
	 * 最后活动时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date lastActivityTime;
	/**
	 * 已回票金额
	 */
	private double paidInvoiceAmount;

	/**
	 * 供应商分级
	 */
	@TableField(exist = false)
	private String classification;

	/**
	 * 供应商合作状态
	 */
	@TableField(exist = false)
	private String collaborationStatus;

	public Integer getSupplierId() {
		return supplierId;
	}

	public void setSupplierId(Integer supplierId) {
		this.supplierId = supplierId;
	}

	public Integer getSupplierClassificationId() {
		return supplierClassificationId;
	}

	public void setSupplierClassificationId(Integer supplierClassificationId) {
		this.supplierClassificationId = supplierClassificationId;
	}

	public Integer getCollaborationStatusId() {
		return collaborationStatusId;
	}

	public void setCollaborationStatusId(Integer collaborationStatusId) {
		this.collaborationStatusId = collaborationStatusId;
	}

	public String getSupplierShortName() {
		return supplierShortName;
	}

	public void setSupplierShortName(String supplierShortName) {
		this.supplierShortName = supplierShortName;
	}

	public String getContactPerson() {
		return contactPerson;
	}

	public void setContactPerson(String contactPerson) {
		this.contactPerson = contactPerson;
	}

	public String getPhoneNumber() {
		return phoneNumber;
	}

	public void setPhoneNumber(String phoneNumber) {
		this.phoneNumber = phoneNumber;
	}

	public Integer getBillingMethodId() {
		return billingMethodId;
	}

	public void setBillingMethodId(Integer billingMethodId) {
		this.billingMethodId = billingMethodId;
	}

	public String getBillingCycle() {
		return billingCycle;
	}

	public void setBillingCycle(String billingCycle) {
		this.billingCycle = billingCycle;
	}

	public Date getLastReconciliationDate() {
		return lastReconciliationDate;
	}

	public void setLastReconciliationDate(Date lastReconciliationDate) {
		this.lastReconciliationDate = lastReconciliationDate;
	}

	public Date getNextReconciliationDate() {
		return nextReconciliationDate;
	}

	public void setNextReconciliationDate(Date nextReconciliationDate) {
		this.nextReconciliationDate = nextReconciliationDate;
	}

	public double getTotalPurchaseAmount() {
		return totalPurchaseAmount;
	}

	public void setTotalPurchaseAmount(double totalPurchaseAmount) {
		this.totalPurchaseAmount = totalPurchaseAmount;
	}

	public double getTotalPayableAmount() {
		return totalPayableAmount;
	}

	public void setTotalPayableAmount(double totalPayableAmount) {
		this.totalPayableAmount = totalPayableAmount;
	}

	public double getTotalReconciledAmount() {
		return totalReconciledAmount;
	}

	public void setTotalReconciledAmount(double totalReconciledAmount) {
		this.totalReconciledAmount = totalReconciledAmount;
	}

	public double getTotalUnreconciledAmount() {
		return totalUnreconciledAmount;
	}

	public void setTotalUnreconciledAmount(double totalUnreconciledAmount) {
		this.totalUnreconciledAmount = totalUnreconciledAmount;
	}

	public double getDelayRate() {
		return delayRate;
	}

	public void setDelayRate(double delayRate) {
		this.delayRate = delayRate;
	}

	public double getUnpaidAmount() {
		return unpaidAmount;
	}

	public void setUnpaidAmount(double unpaidAmount) {
		this.unpaidAmount = unpaidAmount;
	}

	public double getPaidAmount() {
		return paidAmount;
	}

	public void setPaidAmount(double paidAmount) {
		this.paidAmount = paidAmount;
	}

	public double getUnpaidInvoiceAmount() {
		return unpaidInvoiceAmount;
	}

	public void setUnpaidInvoiceAmount(double unpaidInvoiceAmount) {
		this.unpaidInvoiceAmount = unpaidInvoiceAmount;
	}

	public String getQualificationCertificate() {
		return qualificationCertificate;
	}

	public void setQualificationCertificate(String qualificationCertificate) {
		this.qualificationCertificate = qualificationCertificate;
	}

	public String getCompanyFullName() {
		return companyFullName;
	}

	public void setCompanyFullName(String companyFullName) {
		this.companyFullName = companyFullName;
	}

	public String getTaxId() {
		return taxId;
	}

	public void setTaxId(String taxId) {
		this.taxId = taxId;
	}

	public String getBankAccount() {
		return bankAccount;
	}

	public void setBankAccount(String bankAccount) {
		this.bankAccount = bankAccount;
	}

	public String getBankName() {
		return bankName;
	}

	public void setBankName(String bankName) {
		this.bankName = bankName;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public Date getCurrentReconciliationStartDate() {
		return currentReconciliationStartDate;
	}

	public void setCurrentReconciliationStartDate(Date currentReconciliationStartDate) {
		this.currentReconciliationStartDate = currentReconciliationStartDate;
	}

	public Date getCurrentReconciliationEndDate() {
		return currentReconciliationEndDate;
	}

	public void setCurrentReconciliationEndDate(Date currentReconciliationEndDate) {
		this.currentReconciliationEndDate = currentReconciliationEndDate;
	}

	public String getCreator() {
		return creator;
	}

	public void setCreator(String creator) {
		this.creator = creator;
	}

	public String getModifier() {
		return modifier;
	}

	public void setModifier(String modifier) {
		this.modifier = modifier;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getModifyTime() {
		return modifyTime;
	}

	public void setModifyTime(Date modifyTime) {
		this.modifyTime = modifyTime;
	}

	public Date getLastActivityTime() {
		return lastActivityTime;
	}

	public void setLastActivityTime(Date lastActivityTime) {
		this.lastActivityTime = lastActivityTime;
	}

	public double getPaidInvoiceAmount() {
		return paidInvoiceAmount;
	}

	public void setPaidInvoiceAmount(double paidInvoiceAmount) {
		this.paidInvoiceAmount = paidInvoiceAmount;
	}

	public String getClassification() {
		return classification;
	}

	public void setClassification(String classification) {
		this.classification = classification;
	}

	public String getCollaborationStatus() {
		return collaborationStatus;
	}

	public void setCollaborationStatus(String collaborationStatus) {
		this.collaborationStatus = collaborationStatus;
	}
}
